﻿
namespace Ns
{        
    /// <summary>
    /// Specifies the different prefixes of an <see cref="Unit"/>.
    /// </summary>
    /// <seealso href="http://en.wikipedia.org/wiki/SI_prefix">SI Prefixes</seealso>
    public static class UnitPrefixes 
    {
        /// <summary>
        /// Corresponds to yocto (y-) or E-24.
        /// </summary>
        public static readonly UnitPrefix Yocto = new UnitPrefix("y", - 24);
        /// <summary>
        /// Corresponds to zepto (z-) or E-21.
        /// </summary>
        public static readonly UnitPrefix Zepto = new UnitPrefix("z", - 21);
        /// <summary>
        /// Corresponds to atto (a-) or E-18.
        /// </summary>
        public static readonly UnitPrefix Atto = new UnitPrefix("a", - 18);
        /// <summary>
        /// Corresponds to femto (f-) or E-15.
        /// </summary>
        public static readonly UnitPrefix Femto = new UnitPrefix("f", - 15);
        /// <summary>
        /// Corresponds to pico (p-) or E-12.
        /// </summary>
        public static readonly UnitPrefix Pico = new UnitPrefix("p", - 12);
        /// <summary>
        /// Corresponds to nano (n-) or E-9.
        /// </summary>
        public static readonly UnitPrefix Nano = new UnitPrefix("n", - 9);
        /// <summary>
        /// Corresponds to micro (µ-) or E-6.
        /// </summary>
        public static readonly UnitPrefix Micro = new UnitPrefix("µ", - 6);
        /// <summary>
        /// Corresponds to milli (m-) or E-3.
        /// </summary>
        public static readonly UnitPrefix Milli = new UnitPrefix("m", - 3);
        /// <summary>
        /// Corresponds to centi (c-) or E-2.
        /// </summary>
        public static readonly UnitPrefix Centi = new UnitPrefix("c", - 2);
        /// <summary>
        /// Corresponds to deci (d-) or E-1.
        /// </summary>
        public static readonly UnitPrefix Deci = new UnitPrefix("d", - 1);
        /// <summary>
        /// Corresponds to default prefix (-) or E0.
        /// </summary>
        public static readonly UnitPrefix Default = new UnitPrefix(string.Empty, 0);
        /// <summary>
        /// Corresponds to deca (da-) or E1.
        /// </summary>
        public static readonly UnitPrefix Deca = new UnitPrefix("da", 1);
        /// <summary>
        /// Corresponds to hecto (h-) or E2.
        /// </summary>
        public static readonly UnitPrefix Hecto = new UnitPrefix("h", 2);
        /// <summary>
        /// Corresponds to kilo (k-) or E3.
        /// </summary>
        public static readonly UnitPrefix Kilo = new UnitPrefix("k", 3);
        /// <summary>
        /// Corresponds to mega (M-) or E6.
        /// </summary>
        public static readonly UnitPrefix Mega = new UnitPrefix("M", 6);
        /// <summary>
        /// Corresponds to giga (G-) or E9.
        /// </summary>
        public static readonly UnitPrefix Giga = new UnitPrefix("G", 9);
        /// <summary>
        /// Corresponds to tera (T-) or E12.
        /// </summary>
        public static readonly UnitPrefix Tera = new UnitPrefix("T", 12);
        /// <summary>
        /// Corresponds to peta (P-) or E15.
        /// </summary>
        public static readonly UnitPrefix Peta = new UnitPrefix("P", 15);
        /// <summary>
        /// Corresponds to exa (E-) or E18.
        /// </summary>
        public static readonly UnitPrefix Exa = new UnitPrefix("E", 18);
        /// <summary>
        /// Corresponds to zetta (Z-) or E21.
        /// </summary>
        public static readonly UnitPrefix Zetta = new UnitPrefix("Z", 21);
        /// <summary>
        /// Corresponds to yotta (Y-) or E24.
        /// </summary>
        public static readonly UnitPrefix Yotta = new UnitPrefix("Y", 24);
    }
}